// 导入axios模块
import axios from 'axios'
import {Message} from 'element-ui'
import qs from 'qs';

// 配置
axios.defaults.baseURL = 'http://10.73.165.63:8081';


// 配置请求的参数处理
// 添加请求拦截器
axios.interceptors.request.use(function (config) {
    // 在发送请求之前做些什么
    // config.transformRequest = [function (data) {
    //     // 对 data 进行任意转换处理
    //     return qs.stringify(data, {indices: false});
    // }];
    config.paramsSerializer = function (params) {
        return qs.stringify(params, {indices: false})
    };
    // 使用cookie中JSESSIONID
    config.withCredentials = false;
    // 设置请求之前带上token
    // config.auth = window.localStorage.getItem('token')
    // config.headers = {'Authorization': window.localStorage.getItem('token')}
    // let token =  window.localStorage.getItem('token');
    // config.headers['Authorization'] = store.getters.getToken;
    return config;
}, function (error) {
    // 对请求错误做些什么
    return Promise.reject(error);
});
let errorCode = [
    "200" ,
    "201" ,
    "403" ,
    "408" ,
    "500" ,
    "503" ,
    "504" ,
    "800" ,
    "901" ]
function in_arr(errorCode , value){
    for(var i = 0; i < errorCode.length; i++){
        if(value === errorCode[i]){
            return true;
        }
    }
    return false;
}
// 配置请求的响应处理
axios.interceptors.response.use(
    response => {
        // 如果能正确响应数据
        // console.log("response.status:"+response.status)
        if (response.status == 200) {
            // 判断响应的JSON数据
            // console.log("response.data.status:"+response.data.status)
            if (response.data.status == 0) {
                // 业务逻辑正确
                // console.log("response.data.data.errorCode:"+response.data.data.errorCode)
                var index = in_arr(errorCode , response.data.errorCode);
                if(index > 0){
                    // 自动提示信息
                    // if (response.data.errorMsg) {
                    //     Message({
                    //         message: response.data.errorMsg,
                    //         type: 'success'
                    //     })
                    // }
                    // 提取后端数据，直接返回响应的JSON数据
                    return Promise.resolve(response);
                }else{
                    // 自动提示信息
                    if (response.data.data.message) {
                        Message({
                            message: response.data.data.errorMsg,
                            type: 'error'
                        })
                    }
                    // 提取后端数据，直接返回响应的JSON数据
                    return Promise.resolve(response.data.list);
                }
            } else if (response.data.status == 401) {
                // 判断是否有权限
                Message({
                    message: response.data.message,
                    type: 'error'
                })
                return Promise.reject();
            }
            // 提示错误信息
            return Promise.resolve(response);
        }
        return Promise.resolve(response);
    }, error => {

        console.log(error)
        Message({
            message: '系统错误' + error,
            type: 'error'
        })
        return Promise.reject(error);
    }
);

// 导出配置好的对象
export default axios;
